#!/bin/bash
###
# @Author: Logan.Li
# @Gitee: https://gitee.com/attacker
# @email: admin@attacker.club
# @Date: 2025-03-14 09:20:30
# @LastEditTime: 2025-03-14 09:20:35
# @Description: 阿里云监控定时任务脚本
###

# 获取脚本所在目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"

# 日志文件
LOG_FILE="/var/log/aliyun_monitor.log"

# 确保日志目录存在
mkdir -p "$(dirname "$LOG_FILE")"

# 添加时间戳到日志
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始执行阿里云监控任务..." >> "$LOG_FILE"

# 检查Python虚拟环境
if [ ! -d "venv" ]; then
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 创建Python虚拟环境..." >> "$LOG_FILE"
    python3 -m venv venv
fi

# 激活虚拟环境
source venv/bin/activate

# 检查依赖
if ! pip list | grep -q "aliyun-python-sdk-core"; then
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 安装依赖包..." >> "$LOG_FILE"
    pip install -r requirements.txt >> "$LOG_FILE" 2>&1
fi

# 运行监控程序
echo "$(date '+%Y-%m-%d %H:%M:%S') - 运行监控程序..." >> "$LOG_FILE"
python main.py >> "$LOG_FILE" 2>&1

# 检查运行结果
if [ $? -eq 0 ]; then
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 监控任务执行成功" >> "$LOG_FILE"
else
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 监控任务执行失败" >> "$LOG_FILE"
fi

# 退出虚拟环境
deactivate

# 清理旧日志（保留30天）
find /var/log -name "aliyun_monitor.log*" -type f -mtime +30 -delete
